package TDAArbolBinario;
/**
 * Implementa una BTPosicion de árbol binario mediante una ED que mantiene referencias al padre, hijo izquierdo y derecho de la posición.
 * @author FJoaquin (federico.joaquin@cs.uns.edu.ar)
 * @param <E> Tipo de dato del rótulo de la posición.
 */
public class BTNodo<E> implements BTPosition<E> {

	protected BTPosition<E> padre;
	protected BTPosition<E> hi;
	protected BTPosition<E> hd;
	protected E elemento;
	
	/**
	 * Inicializa una nueva posición considerando un rótulo y la referencia al padre de la misma.
	 * @param e Rótulo de la posición a crear.
	 * @param p Posición correspondiente al padre de la posición creada.
	 */
	public BTNodo(E e, BTPosition<E> p) {
		elemento = e;
		padre = p;
	}
	
	@Override
	public BTPosition<E> getParent() {
		return padre;
	}

	@Override
	public BTPosition<E> getLeft() {
		return hi;
	}

	@Override
	public BTPosition<E> getRight() {
		return hd;
	}

	@Override
	public E element() {
		return elemento;
	}

	@Override
	public void setParent(BTPosition<E> p) {
		padre = p;
	}

	@Override
	public void setLeft(BTPosition<E> l) {
		hi = l;
	}

	@Override
	public void setRight(BTPosition<E> r) {
		hd = r;
	}

	@Override
	public void setElement(E e) {
		elemento = e;
	}

}
